package org.jground.rx.def.apps.ipm;
import org.jground.rx.*;
import org.jground.rx.gen.*;
import org.jground.util.*;
import java.util.List;
import org.jground.rx.def.apps.accounting.*;
import org.jground.rx.def.apps.commons.*;
import org.jground.rx.def.apps.knowledge.*;
import org.jground.rx.def.*;
import org.jground.rx.def.apps.crm.*;
import org.jground.rx.def.apps.cip.*;
import org.jground.rx.def.apps.core.*;
import org.jground.rx.def.apps.legal.*;
@SuppressWarnings("unused")
public class Infringement extends GenRoot {

    public static final String moid = "org.jground.rx.def.apps.ipm.Infringement";

    private static final String caseDescription ="caseDescription";
    private static final String country ="country";
    private static final String copiedProducts ="copiedProducts";
    private static final String infringerCompanyName ="infringerCompanyName";
    private static final String infringerCompanyContact ="infringerCompanyContact";
    private static final String distributionChannel ="distributionChannel";
    private static final String producer ="producer";
    private static final String status ="status";
    private static final String contracts ="contracts";
    private static final String documents ="documents";
    private static final String involvedDesigns ="involvedDesigns";
    private static final String involvedTrademarks ="involvedTrademarks";
    private static final String involvedPatents ="involvedPatents";
    private static final String corrAttorney ="corrAttorney";
    private static final String journals ="journals";
    private static final String legalActions ="legalActions";
    private static final String $CREATOR ="$CREATOR";

    public static final class AttName {
        public static final String caseDescription ="caseDescription";
        public static final String country ="country";
        public static final String copiedProducts ="copiedProducts";
        public static final String infringerCompanyName ="infringerCompanyName";
        public static final String infringerCompanyContact ="infringerCompanyContact";
        public static final String distributionChannel ="distributionChannel";
        public static final String producer ="producer";
        public static final String status ="status";
        public static final String contracts ="contracts";
        public static final String documents ="documents";
        public static final String involvedDesigns ="involvedDesigns";
        public static final String involvedTrademarks ="involvedTrademarks";
        public static final String involvedPatents ="involvedPatents";
        public static final String corrAttorney ="corrAttorney";
        public static final String journals ="journals";
        public static final String legalActions ="legalActions";
        public static final String $CREATOR ="$CREATOR";
    }

    public static Infringement createNew() { return new Infringement(RXObjectService.getInstance().create(moid)); }

    public static Infringement getById(String oid) { 
        IRXObject mod = RXObjectService.getInstance().getById(oid);
        if(mod == null) { return null; }
        return new Infringement(mod);
    }

    public static Infringement[] getByIds(String... oids) { 
        List<IRXObject> mods = RXObjectService.getInstance().getByIds(moid, oids);
        Infringement[] res = new Infringement[mods.size()];
        int i = 0;
        for(IRXObject mod : mods) {
            res[i] = new Infringement(mod);
            i++;
        }
        return res;
    }

    public static SearchCriteria newSearchCriteria() {
        return  SearchCriteria.create(moid);
    }

    public static Infringement[] search(SearchCriteria sc) {
        return  wrap(GenRoot._search(sc));
    }

    public static Infringement[] wrap(List<? extends IRXObjectSynopsis> mods) { 
        Infringement[] res = new Infringement[mods.size()];
        int i = 0;
        for(IRXObjectSynopsis mod : mods) {
            res[i] = new Infringement(mod);
            i++;
        }
        return res;
    }

    public static Infringement wrap(IRXObjectSynopsis mod) { 
        return new Infringement(mod);
    }

    private Infringement(IRXObjectSynopsis rxObject) {this.rxObject = (IRXObject) rxObject;}

    public static String getCaseDescriptionLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, caseDescription).getLabel();
    }

    public static String getCaseDescriptionDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, caseDescription).getDescription();
    }

    public void setCaseDescription(String text) {
        rxObject.set(caseDescription, _to_String(text));
    }

    public String getCaseDescription() {
        return _to_String(rxObject.getCurrentValue(caseDescription));
    }

    public static String getCountryLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, country).getLabel();
    }

    public static String getCountryDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, country).getDescription();
    }

    public void setCountry(String codeValue) {
        rxObject.set(country, _to_String(codeValue));
    }

    public String getCountry() {
        return _to_String(rxObject.getCurrentValue(country));
    }

    public static String getCopiedProductsLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, copiedProducts).getLabel();
    }

    public static String getCopiedProductsDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, copiedProducts).getDescription();
    }

    public int getCopiedProductsSize() {
        return org.jground.rx.def.apps.ipm.Imitation.wrap(rxObject.getComponents(AttName.copiedProducts)).length;
    }

    public org.jground.rx.def.apps.ipm.Imitation[] getCopiedProducts() {
        return org.jground.rx.def.apps.ipm.Imitation.wrap(rxObject.getComponents(AttName.copiedProducts));
    }

    public org.jground.rx.def.apps.ipm.Imitation getCopiedProducts(int index) {
        return org.jground.rx.def.apps.ipm.Imitation.wrap(rxObject.getComponents(AttName.copiedProducts))[index];
    }

    public org.jground.rx.def.apps.ipm.Imitation createCopiedProducts() {
        return org.jground.rx.def.apps.ipm.Imitation.wrap(rxObject.newComponent(copiedProducts));
    }

    public void setCopiedProducts(org.jground.rx.def.apps.ipm.Imitation[] values) {
        rxObject.set(copiedProducts, _to_String(copiedProducts));
    }

    public void addCopiedProducts(org.jground.rx.def.apps.ipm.Imitation value) {
        rxObject.add(copiedProducts, value.getOidString());
    }

    public static String getInfringerCompanyNameLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, infringerCompanyName).getLabel();
    }

    public static String getInfringerCompanyNameDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, infringerCompanyName).getDescription();
    }

    public void setInfringerCompanyName(String string) {
        rxObject.set(infringerCompanyName, _to_String(string));
    }

    public String getInfringerCompanyName() {
        return _to_String(rxObject.getCurrentValue(infringerCompanyName));
    }

    public static String getInfringerCompanyContactLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, infringerCompanyContact).getLabel();
    }

    public static String getInfringerCompanyContactDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, infringerCompanyContact).getDescription();
    }

    public void setInfringerCompanyContact(String text) {
        rxObject.set(infringerCompanyContact, _to_String(text));
    }

    public String getInfringerCompanyContact() {
        return _to_String(rxObject.getCurrentValue(infringerCompanyContact));
    }

    public static String getDistributionChannelLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, distributionChannel).getLabel();
    }

    public static String getDistributionChannelDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, distributionChannel).getDescription();
    }

    public void setDistributionChannel(String string) {
        rxObject.set(distributionChannel, _to_String(string));
    }

    public String getDistributionChannel() {
        return _to_String(rxObject.getCurrentValue(distributionChannel));
    }

    public static String getProducerLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, producer).getLabel();
    }

    public static String getProducerDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, producer).getDescription();
    }

    public void setProducer(String text) {
        rxObject.set(producer, _to_String(text));
    }

    public String getProducer() {
        return _to_String(rxObject.getCurrentValue(producer));
    }

    public static String getStatusLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, status).getLabel();
    }

    public static String getStatusDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, status).getDescription();
    }

    public void setStatus(String codeValue) {
        rxObject.set(status, _to_String(codeValue));
    }

    public String getStatus() {
        return _to_String(rxObject.getCurrentValue(status));
    }

    public static String getContractsLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, contracts).getLabel();
    }

    public static String getContractsDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, contracts).getDescription();
    }

    public void addContracts(org.jground.rx.def.apps.ipm.Contract... value) {
        rxObject.set(contracts, _to_String(value));
    }

    public void setContracts(org.jground.rx.def.apps.ipm.Contract[] values) {
        rxObject.set(contracts, _to_String(values));
    }

    public int getContractsSize() {
        return StringUtils.rnn(rxObject.getValues(contracts)).length;
    }

    public org.jground.rx.def.apps.ipm.Contract[] getContracts() {
        return org.jground.rx.def.apps.ipm.Contract.getByIds(rxObject.getValues(contracts));
    }

    public org.jground.rx.def.apps.ipm.Contract getContracts(int index) {
        return org.jground.rx.def.apps.ipm.Contract.getByIds(rxObject.getValues(contracts))[index];
    }

    public static String getDocumentsLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, documents).getLabel();
    }

    public static String getDocumentsDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, documents).getDescription();
    }

    public int getDocumentsSize() {
        return org.jground.rx.def.apps.commons.Document.wrap(rxObject.getComponents(AttName.documents)).length;
    }

    public org.jground.rx.def.apps.commons.Document[] getDocuments() {
        return org.jground.rx.def.apps.commons.Document.wrap(rxObject.getComponents(AttName.documents));
    }

    public org.jground.rx.def.apps.commons.Document getDocuments(int index) {
        return org.jground.rx.def.apps.commons.Document.wrap(rxObject.getComponents(AttName.documents))[index];
    }

    public org.jground.rx.def.apps.commons.Document createDocuments() {
        return org.jground.rx.def.apps.commons.Document.wrap(rxObject.newComponent(documents));
    }

    public void setDocuments(org.jground.rx.def.apps.commons.Document[] values) {
        rxObject.set(documents, _to_String(documents));
    }

    public void addDocuments(org.jground.rx.def.apps.commons.Document value) {
        rxObject.add(documents, value.getOidString());
    }

    public static String getInvolvedDesignsLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, involvedDesigns).getLabel();
    }

    public static String getInvolvedDesignsDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, involvedDesigns).getDescription();
    }

    public void addInvolvedDesigns(org.jground.rx.def.apps.ipm.Design... value) {
        rxObject.set(involvedDesigns, _to_String(value));
    }

    public void setInvolvedDesigns(org.jground.rx.def.apps.ipm.Design[] values) {
        rxObject.set(involvedDesigns, _to_String(values));
    }

    public int getInvolvedDesignsSize() {
        return StringUtils.rnn(rxObject.getValues(involvedDesigns)).length;
    }

    public org.jground.rx.def.apps.ipm.Design[] getInvolvedDesigns() {
        return org.jground.rx.def.apps.ipm.Design.getByIds(rxObject.getValues(involvedDesigns));
    }

    public org.jground.rx.def.apps.ipm.Design getInvolvedDesigns(int index) {
        return org.jground.rx.def.apps.ipm.Design.getByIds(rxObject.getValues(involvedDesigns))[index];
    }

    public static String getInvolvedTrademarksLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, involvedTrademarks).getLabel();
    }

    public static String getInvolvedTrademarksDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, involvedTrademarks).getDescription();
    }

    public void addInvolvedTrademarks(org.jground.rx.def.apps.ipm.Trademark... value) {
        rxObject.set(involvedTrademarks, _to_String(value));
    }

    public void setInvolvedTrademarks(org.jground.rx.def.apps.ipm.Trademark[] values) {
        rxObject.set(involvedTrademarks, _to_String(values));
    }

    public int getInvolvedTrademarksSize() {
        return StringUtils.rnn(rxObject.getValues(involvedTrademarks)).length;
    }

    public org.jground.rx.def.apps.ipm.Trademark[] getInvolvedTrademarks() {
        return org.jground.rx.def.apps.ipm.Trademark.getByIds(rxObject.getValues(involvedTrademarks));
    }

    public org.jground.rx.def.apps.ipm.Trademark getInvolvedTrademarks(int index) {
        return org.jground.rx.def.apps.ipm.Trademark.getByIds(rxObject.getValues(involvedTrademarks))[index];
    }

    public static String getInvolvedPatentsLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, involvedPatents).getLabel();
    }

    public static String getInvolvedPatentsDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, involvedPatents).getDescription();
    }

    public void addInvolvedPatents(org.jground.rx.def.apps.ipm.Patent... value) {
        rxObject.set(involvedPatents, _to_String(value));
    }

    public void setInvolvedPatents(org.jground.rx.def.apps.ipm.Patent[] values) {
        rxObject.set(involvedPatents, _to_String(values));
    }

    public int getInvolvedPatentsSize() {
        return StringUtils.rnn(rxObject.getValues(involvedPatents)).length;
    }

    public org.jground.rx.def.apps.ipm.Patent[] getInvolvedPatents() {
        return org.jground.rx.def.apps.ipm.Patent.getByIds(rxObject.getValues(involvedPatents));
    }

    public org.jground.rx.def.apps.ipm.Patent getInvolvedPatents(int index) {
        return org.jground.rx.def.apps.ipm.Patent.getByIds(rxObject.getValues(involvedPatents))[index];
    }

    public static String getCorrAttorneyLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, corrAttorney).getLabel();
    }

    public static String getCorrAttorneyDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, corrAttorney).getDescription();
    }

    public void setCorrAttorney(String text) {
        rxObject.set(corrAttorney, _to_String(text));
    }

    public String getCorrAttorney() {
        return _to_String(rxObject.getCurrentValue(corrAttorney));
    }

    public static String getJournalsLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, journals).getLabel();
    }

    public static String getJournalsDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, journals).getDescription();
    }

    public int getJournalsSize() {
        return org.jground.rx.def.apps.commons.TimeNote.wrap(rxObject.getComponents(AttName.journals)).length;
    }

    public org.jground.rx.def.apps.commons.TimeNote[] getJournals() {
        return org.jground.rx.def.apps.commons.TimeNote.wrap(rxObject.getComponents(AttName.journals));
    }

    public org.jground.rx.def.apps.commons.TimeNote getJournals(int index) {
        return org.jground.rx.def.apps.commons.TimeNote.wrap(rxObject.getComponents(AttName.journals))[index];
    }

    public org.jground.rx.def.apps.commons.TimeNote createJournals() {
        return org.jground.rx.def.apps.commons.TimeNote.wrap(rxObject.newComponent(journals));
    }

    public void setJournals(org.jground.rx.def.apps.commons.TimeNote[] values) {
        rxObject.set(journals, _to_String(journals));
    }

    public void addJournals(org.jground.rx.def.apps.commons.TimeNote value) {
        rxObject.add(journals, value.getOidString());
    }

    public static String getLegalActionsLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, legalActions).getLabel();
    }

    public static String getLegalActionsDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, legalActions).getDescription();
    }

    public int getLegalActionsSize() {
        return org.jground.rx.def.apps.ipm.LegalAction.wrap(rxObject.getComponents(AttName.legalActions)).length;
    }

    public org.jground.rx.def.apps.ipm.LegalAction[] getLegalActions() {
        return org.jground.rx.def.apps.ipm.LegalAction.wrap(rxObject.getComponents(AttName.legalActions));
    }

    public org.jground.rx.def.apps.ipm.LegalAction getLegalActions(int index) {
        return org.jground.rx.def.apps.ipm.LegalAction.wrap(rxObject.getComponents(AttName.legalActions))[index];
    }

    public org.jground.rx.def.apps.ipm.LegalAction createLegalActions() {
        return org.jground.rx.def.apps.ipm.LegalAction.wrap(rxObject.newComponent(legalActions));
    }

    public void setLegalActions(org.jground.rx.def.apps.ipm.LegalAction[] values) {
        rxObject.set(legalActions, _to_String(legalActions));
    }

    public void addLegalActions(org.jground.rx.def.apps.ipm.LegalAction value) {
        rxObject.add(legalActions, value.getOidString());
    }

    public static String get$CREATORLabel() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, $CREATOR).getLabel();
    }

    public static String get$CREATORDescription() {
        return RXSystem.getInstance().getRxService().getRXAttribute(moid, $CREATOR).getDescription();
    }

    public void set$CREATOR(String string) {
        rxObject.set($CREATOR, _to_String(string));
    }

    public String get$CREATOR() {
        return _to_String(rxObject.getCurrentValue($CREATOR));
    }

}
